Cracking Turorial #4

Това е  четвъртия урок по кракване от ^Shade^.Всичко е обяснено много просто и елементарно.Необходимо е само да прочетете страницата до край.Но не си мислете че сте вече Кракери като сте прочели само тази страница.

В този урок ще кракнем едно  CrackMe което трябва да изтеглите от тук.

Принадлежности:

SoftIce Можете да го изтеглите от http://freak-inc.hit.bg/Download.htm
Win32dasm Можете да го изтеглите от http://freak-inc.hit.bg/Download.htm
PE Explorer Можете да го изтеглите от  http://freak-inc.hit.bg/Download.htm
Pescan Можете да го изтеглите от http://freak-inc.hit.bg/Download.htm
ProcDump Можете да го изтеглите от http://freak-inc.hit.bg/Download.htm
HexWorkshop Можете да го изтеглите от http://freak-inc.hit.bg/Download.htm

Когато се занимавате с кракване трябва задължително да си правите резервни копия.Аз си правя файлове .bak .
Първо включете Crackme-то и го разгледайте.Какво забелиязвате ?Някакво съобщение , второ съобщение  и накрая стандартната Windows-ка програмка Notepad.По всочко личи че нашата задача като на кракери е да махнем тези съобщения.

За всеки случей пускаме Pescan-а , за да проверим дали е pack-нато.Pescan-а не го разпознажа като pack-нато .=> Задачата ни се улеснява.

1. Начин 

Включвате Win32dasm и щракнете върху бутона посочен от стрелката.
После изберете Notepad.based.CrackMe1.exe и изчакайте докато се деасемблира.След това щракнете върху посочения от стрелката бутон.

и би трябвало да видите следното:

Хм,
Това е много странно.Не се виждата съобщенията за наговете.Имайки в предвит и че това е все пак Notepad => e в exe-то е вмъкнат програмен код.Тъй като не виждаме и стринговете и exe-то не е packnato. =>Трябва да проверим дали секциите на exe-то са наред
Пускаме PE Explorer.Даваме "File" после "Open" , избираме нашето Crackme и изчакваме нияколко секунди докато се зареди фаила.След това избираме от "View" "Section Headers"  и би трябвало да видите следното :

Веднага набива на очи тази нова и странна секциа .CoDe!!Това не е до болка позната ни секциа .code  а нова добавена секция .CoDe
Щракваме 2 пъти върху .CoDe и би труябвало да видите следното:


И ето че намеигме търсените от нас стрингове за  началните съобщения.Преди това виждаме някакви стани знаци които трябва да са командите на Assebler които са виновни за тези съобщения.=>Трябва да си Disassebl-ираме само тази секция

Включваме ProcDumpa и избираме "Pe Editor" , след това избираме нашия файл и изчакваме нияколко секунди докато се зареди.После избираме "Sections" и от секциите избираме нашата .CoDe.Щракваме с десния бутон върху нея и даваме "Save saction on disk".Слагаме я примерно на Desktop-а и излизаме от ProcDumpa

Включвате Win32dasm и щракнете върху бутона посочен от стрелката.

и избираме току сложената секциа на Desktop-a.Изчакваме нияколко секунди докато се disassemblira фала и виждаме следното.

Хм.. Ето някакви pusho-ве  после call  и накрая jmp
От менюто "Execute Text" избираме "Execute Jump" и се намираме пак пред някакви pusho-ве  после call  и накрая jmp.По всичко личи че първиа call по горе е за Първото съобщение а втория за второто.=> ако успеем да премахнем call-овете сте сме махнали съобщенията(нашата цел)
Toва ще стане по следния начин:
1)Трябва да намерим първия call  за първото съобшение в EXE-то
2)Трябва да го заменим с празен код а не да го Delet-нем(Празен код за един byte в HexCode e 90 а за 2 byte(4048)  
3)Трябва да намерим втория call  за първото съобшение в EXE-то
4)Трябва да го заменим с празен код а не да го Delet-нем(Празен код за един byte в HexCode e 90 а за 2 byte(4048) 

1)Пускаме HexWorkshop и отваряме EXE-то.После от "Edit" избираме "Find" и пишем HEX-а на първия call  и на jmp-a след него(FF15A8644000E9C7010000)HexEditor-а ни откарва на Offset 0x0000D00E

2)Сега заместваме  FF15A8644000 с 404840484048 

3)От "Edit" избираме "Find" и пишем HEX-а на втория call  и на jmp-a след него(FF15A8644000E9D33EFFFF)HexEditor-а ни откарва на Offset 0x0000D1EE

4)Сега заместваме  FF15A8644000 с 404840484048

Сега изберете от менюто "File" "Save" и сте готови.Наговете вече са премахнати.

2 Начин

Разби ра се хиляди начини за да се кракне това CrackMe.Ето един много по кратък и лесен.

Влизате в SoftIce  и слагате BreakPoint за MessageBoxA
Това става като напишете в SoftIce "bpx MessageBoxA"

Сега пуснете CrackMe-то.И би трябвало веднага да се озовете в SoftIce.
Натискте F11  за да излезете от Windows-ката библиотека и после натискате бутона "Ok".Автоматично се връщате в SoftIce и трябва да едитнете кода на програмата ръчно.Трябва да смените FF15A8644000(USER32!MessageBoxA) с 404840484048(IncDecIncDec..) за да премахнете първото съобщение.Написвате "D EIP" за да отидете на мястото на изптлнимия код и се връщате малко назаде с стрелката .Сега  натискате ALT+D и вече можете да замествате HEX-а и го замествате от FF15A8644000 на 404840484048.След като го заместите натискате "Enter".След това trace-нете малко кода на програмата с F8 докато стигнете до следващия call който би трябвало да е FF15A8644000(USER32!MessageBoxA) и  го замествате пак с 404840484048(IncDecIncDec..) по същия начин.Сега премахнете BreakPoint-а с "bd * "(Disabl-ва всички Breakpointi) и излезте от SoftIce.Сега включете ProcDump и от "task" изберете нашия process който го кракнахме току що.
Щракнете върху него с десния бутон и изберете "Dump (Full)".Сложете го някъде на харда си и сте готови.